package com.ccit.common.utils;

import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.Map;
import java.util.UUID;

@Component
public class UploadUtil {

    public String getSavePath(Map map) {
        // 这里需要注意的是ApplicationHome是属于SpringBoot的类A
        // 获取项目下resources/static/img路径
//        ApplicationHome applicationHome = new ApplicationHome(this.getClass());
//        System.out.println("1=====>" + applicationHome.getDir());
//        System.out.println("1=====>" + applicationHome.getDir().getParentFile());
//        System.out.println("1=====>" + applicationHome.getDir().getParentFile().getParentFile());
//        System.out.println("1=====>" + applicationHome.getDir().getParentFile().getParentFile().getParentFile().getAbsolutePath());
//        System.out.println("1=====>" + applicationHome);
        // 保存目录位置根据项目需求可随意更改
        return map.get("pathPrefix") + "\\src\\main\\resources\\static\\" + map.get("src") + "\\img";
    }


    public String saveFile(MultipartFile file, Map map) {
        if (file.isEmpty()) {
            return "文件为空！";
        }
        // 给文件重命名
        String fileName = UUID.randomUUID() + "." + file.getContentType()
                .substring(file.getContentType().lastIndexOf("/") + 1);
        try {
        // 获取保存路径

        String path = getSavePath(map);
        System.out.println("path================================>" + path);
            File files = new File(path, fileName);
            File parentFile = files.getParentFile();
            if (!parentFile.exists()) {
                parentFile.mkdir();
            }
            file.transferTo(files);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return fileName; // 返回重命名后的文件名
    }
}
